package com.xy.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xy.entity.CertificateApplyEntity;
import com.xy.excel.*;
import com.xy.vo.CertificateApplyVO;
import com.xy.vo.quer.AuditParam;
import com.xy.vo.quer.CertificateApplyPageQuery;
import com.xy.vo.result.MateVO;
import org.springblade.core.mp.base.BaseService;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.constraints.NotBlank;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 业务接口
 * 证件申请表
 * </p>
 * @author WK
 * @date 2023-07-19
 */

public interface ICertificateApplyService extends BaseService<CertificateApplyEntity> {


	  List<CertificateApplyEntity> getExportData(CertificateApplyPageQuery param, @NotBlank String  type) ;

	void importVeData(List<VehicleExcelTemp> data, Boolean isCovered,String cid);
	void importPeData(List<PersonnelExcelTemp> data, Boolean isCovered, String type,String cid);



	/**
	 * 自定义分页
	 * @param page
	 * @param certificateApply
	 * @return
	 */
	IPage<CertificateApplyVO> selectCertificateApplyPage(IPage<CertificateApplyVO> page, CertificateApplyVO certificateApply);


	/**
	 * 导出数据
	 *
	 * @param queryWrapper
	 * @return
	 */
	List<CertificateApplyExcel> exportCertificateApply(Wrapper<CertificateApplyEntity> queryWrapper);

	Boolean matchingFileL(String filePath );

	Boolean audit(AuditParam auditParam);

	Long countBy(Long certificateTypeId,Long  createUserId);
	Map<String, List<CertificateApplyEntity>> countByUserIds(List<Long> certificateTypeIds   );

	Boolean resAudit(List<Long> longList);

	boolean delete(List<Long> longList);

	List<MateVO> putFileAttach(MultipartFile file);

}
